This invention relates to computer systems for simulating physical processes, e.g., fluid flow.
The conventional approach to simulating high Reynolds number flow has been to generate discretized solutions of the Navier-Stokes differential equations, in which high-precision floating point arithmetic operations are performed at each of many discrete spatial locations on variables representing the macroscopic physical quantities (e.g., density, temperature, flow velocity). The fastest and most powerful computers available are used, and yet very limited and inexact results have been achieved. To keep run times manageable, very coarse grid resolutions are used, and even at those coarse resolutions there are unacceptable errors in the solutions due to accumulated round off errors inherent in performing successive floating point arithmetic operations.
There has long been an effort to replace the differential equation approach with what is generally known as lattice gas (or cellular) automata, in which the macroscopic-level simulation provided by solving the Navier-Stokes equations is replaced by a microscopic-level model that performs operations on particles moving between sites on a lattice. The goal has long been to find a microscopic-level model of particle interactions and movement that would produce the correct macroscopic results (i.e., variations in density, temperature, etc. as prescribed by the Navier Stokes equations).
The traditional lattice gas simulation assumes a limited number of particles at each lattice site, with the particles being represented by a short vector of bits. Each bit represents a particle moving in a particular direction. For example, one bit in the vector might represent the presence (when set to 1) or absence (when set to 0) of a particle moving along a particular direction. Such a vector might have six bits, with, for example, the values 110000 indicating two particles moving in opposite directions along the X axis, and no particles moving along the Y and Z axes. A set of collision rules governs the behavior of collisions between particles at each site (e.g., a 110000 vector might become a 001100 vector, indicating that a collision between the two particles moving along the X axis produced two particles moving away along the Y axis). The rules are implemented by supplying the state vector to a lookup table, which performs a permutation on the bits (e.g., transforming the 110000 to 001100). Particles are then moved to adjoining sites (e.g., the two particles moving along the Y axis would be moved to neighboring sites to the left and right along the Y axis).
Molvig et al. taught an improved lattice gas technique in which, among other things, many more bits were added to the state vector at each lattice site (e.g., 54 bits for subsonic flow) to provide variation in particle energy and movement direction, and collision rules involving subsets of the full state vector were employed. Molvig et al PCT/US91/04930; Molvig et al., "Removing the Discreteness Artifacts in 3D Lattice-Gas Fluids", Proceedings of the Workshop on Discrete Kinetic Theory, Lattice Gas Dynamics, and Foundations of Hydrodynamics, World Scientific Publishing Co., Pte., Ltd., Singapore (1989); Molvig et al., "Multi-species Lattice-Gas Automata for Realistic Fluid Dynamics", Springer Proceedings in Physics, Vol. 46, Cellular Automata and Modeling of Complex Physical Systems, Springer-Verlag Berlin, Heidelberg (1990) (all hereby incorporated by reference). These improvements and others taught by Molvig et al. produced the first practical lattice-gas computer system. Discreteness artifacts that had made earlier lattice gas models inaccurate at modeling fluid flow were eliminated.
In another approach to avoiding discreteness artifacts, referred to as the lattice-Boltzmann model, the boolean variables of lattice gas techniques are replaced by real variables. Chen et al., "Lattice Boltzmann Model for Simulation of Magnetohydrodynamics," Physical Review letters, Vol. 67, n. 27, 30 Dec. 1991; Qian et al., "Lattice BGK Models for Navier-Stokes Equation," Europhysics Letters, Vol. 17, pp. 479-484, 1 Feb. 1992. Rather than monitoring the presence of individual particles for each state of each site in the lattice, the lattice-Boltzmann model monitors the particle distribution function for each said state.
As described by Qian et al., the real numbers used in the lattice-Boltzmann approach permit application of the method of relaxation, which can be described simply as: EQU N(t+1)=(1-.omega.)N(t)+.omega.N.sub.e,
where N(t) is a quantity at time t, N.sub.e is the quantity's equilibrium (Boltzmann) value, and .omega. is a relaxation parameter having a value between 0 and 2. The method is referred to as subrelaxation when 0&lt;.omega.&lt;1, and over-relaxation when 1&lt;.omega.&lt;2. (When .omega.=1, N(t+1) simply equals N.sub.e, and no relaxation occurs.) Qian et al. also noted that the shear viscosity of a simulated fluid can be reduced by increasing .omega..